#!/usr/bin/env python
# coding=utf-8
"""
@Author  : youjia - 卞志伟
@file    : day_report_online.py
@contact : bianzhiwei@iyoujia.com
@time    : 2019-06-10 17:11 
@Desc    : 线上销售日报
@Software: PyCharm
"""
import os
import sys

# 当前文件的路径
pwd, filename = os.path.split(os.path.abspath(__file__))
# 当前文件的父路径
father_path = os.path.abspath(os.path.dirname(pwd) + os.path.sep + ".")
# 当前文件的前两级目录
grader_father = os.path.abspath(os.path.dirname(pwd) + os.path.sep + "..")
sys.path.append(pwd)
sys.path.append(father_path)
sys.path.append(grader_father)

import pandas as pd
from report_system.utils import date_util
from report_system.utils import mail_util
from report_system.utils import mailbox_util
from report_system.utils.log_util import log
from report_system.report_specify.day_report_specify import online_yesterday
from report_system.report_specify.day_report_specify import online_month
from report_system.report_specify.day_report_specify import online_month_surplus
from report_system.report_specify.day_report_specify import online_ago_seven
from report_system.report_specify.day_report_specify import online_ago_thirty
from report_system.report_specify.day_report_specify import online_future_fourteen
from report_system.report_specify.day_report_specify import colors
from report_system.utils.development_util import debug

if debug:
    receivers = 'bianzhiwei@iyoujia.com'
    city_mails = mailbox_util.mails_test
else:
    receivers = 'yangweiwei@iyoujia.com;yy@iyoujia.com;zhuqiang@iyoujia.com;ccsj@iyoujia.com;dt@iyoujia.com'
    city_mails = mailbox_util.mails_all


def process(dt=None):
    dt = dt or date_util.curdate()
    log.info('开始处理 线上销售日报  dt = ' + str(dt))
    online_yesterday_df = online_yesterday(dt)
    log.info('处理 线上销售日报 昨日数据 完成！')
    online_month_df = online_month(dt)
    log.info('处理 线上销售日报 本月截止日数据 完成！')
    online_month_surplus_df = online_month_surplus(dt)
    log.info('处理 线上销售日报 本月剩余数据 完成！')
    online_ago_seven_df = online_ago_seven(dt)
    log.info('处理 线上销售日报 七天前数据 完成！')
    online_ago_thirty_df = online_ago_thirty(dt)
    log.info('处理 线上销售日报 三十天前数据 完成！')
    online_future_fourteen_df = online_future_fourteen(dt)
    log.info('处理 线上销售日报 未来十四天前数据 完成！')

    df = pd.merge(online_yesterday_df, online_month_df, how='left', left_index=True, right_index=True)
    df = pd.merge(df, online_month_surplus_df, how='left', left_index=True, right_index=True)
    df = pd.merge(df, online_ago_seven_df, how='left', left_index=True, right_index=True)
    df = pd.merge(df, online_ago_thirty_df, how='left', left_index=True, right_index=True)
    df = pd.merge(df, online_future_fourteen_df, how='left', left_index=True, right_index=True)
    log.info('合并 线上销售日报 所有数据 完成！')

    df = df.reset_index()
    df_dict = {'线上销售日报': df}
    colors_dict = {'线上销售日报': colors}

    text = """    Dear All:
                附件是新版 线上销售日报！ 
                请查收！
                谢谢！
        如有问题！
        请联系: dt@iyoujia.com
        """
    mail_util.distribute_mail(df_dict=df_dict, file_name='线上销售日报', text=text, html_sheet_name='线上销售日报',
                              title="线上销售日报", colors_dict=colors_dict, receiver=receivers,na_rep='-',
                              city_mails=city_mails, city=True, city_key='城市', uuid='online')


def run(dt):
    try:
        process(dt)
    except Exception as e:
        mail_util.error_mail("线上销售日报", e.__str__())
        log.exception(e)


if __name__ == '__main__':
    process()
